1. Field of the Invention
The present invention relates generally to the field of graphics processing and more specifically to a system and method for selecting the boot VGA adapter in a multi-graphics processing unit computing system.
2. Description of the Related Art
A typical computing system includes a central processing unit (CPU), an input device, a system memory, one or more graphics processing units (GPUs), and any number of display devices. A variety of software application programs may run on the computing system. The CPU usually executes the overall structure of the software application program and configures the GPUs to perform specific tasks in the graphics pipeline. Some computing systems include both a power-saving motherboard integrated GPU (MGPU) and one or more higher-performance discrete GPUs (DGPU). Such a computing system may support a variety of hybrid features. For example, in a hybrid power mode, the CPU may minimize power consumption by powering-down the DGPU and using only the MGPU.
Each GPU has the ability to receive data and to use this data to drive one or more attached display devices. However, one of the GPUs in the computing system is configured as a boot VGA adapter, and the remaining GPUS are configured as secondary, non-VGA adapters. This is due to the fact that, by definition, the standard VGA device uses certain fixed legacy I/O and memory resources which cannot be moved or shifted to support additional VGA adapters that occupy the same I/O and memory locations. The GPU that is configured as the boot VGA adapter is the only GPU that receives critical diagnostic information and error messages, such as power-on self-test (POST) boot screens, operating system boot messages, and failsafe error messages. When the computing system is booted-up, the system basic input/output system (SBIOS) selects the boot VGA adapter and, typically, this VGA adapter selection cannot be altered until the computing system is rebooted. Further, the computing system will not usually allow the boot VGA adapter to be powered-down while the computing system is running.
In one approach to selecting the boot VGA adapter, the SBIOS selects the MGPU as the boot VGA adapter by default. Selecting the MGPU as the boot VGA adapter in this fashion allows the computing system to power down the DGPU to support certain hybrid features. One drawback to this approach, however, is that there may be no display device attached to the MGPU. To the extent there is no display device attached to the MGPU, when the computing system boots, data targeted to only the boot VGA adapter is not displayed. Such a situation might occur if the user accidentally attaches the only display device to the DGPU. Alternatively, the user may purposefully attach the only display device to the DGPU to take advantage of a feature of the DGPU, such as a high-definition multimedia interface (HDMI), which is not always supported by the MGPU. In such a situation, the computing system is unable to display certain critical information until the user either attaches a display device to the MGPU or reboots the system and manually selects the DGPU as the boot VGA adapter.
As the foregoing illustrates, what is needed in the art is a more flexible and effective technique for selecting the boot VGA adapter in a multi-GPU computing system.